<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div id="app" v-if="flag">
        <!-- <h2 id="#hhh">{{msg}}</h2> -->
        <h3>
            {{count}}
            <button @click="add">++++</button>

            <button @click="isShow">点我销毁</button>
        </h3>
    </div>
    <script src="./vue.min.js"></script>
    <script>
        let vm = new Vue({
            el: "#app",
            //
            //Vue创建之前
            data: {
                msg: "我是msg数据",
                data:[],
                count:1,
                flag:true
            },
            methods: {
                fn() {

                }
            },
            // template:"<h3>我是template</h3>",
            //
            //vue实例创建之前（基本不使用）得不到data数据methods中的方法
            beforeCreate() {
                console.log(this.msg);
                console.log(this.fn);
            },
            //vue实例创建完成（使用率高）,可以以获取到this上除了（$refs）以外的所有内容
            created() {
                //读取不到dom结构
                console.log(this.msg);
                console.log(this.fn);
                console.log(document.getElementById("#hhh"));
            },
            //dom准备挂载（使用少）
            beforeMount(){
                console.log('准备挂载');
            },
            //dom结构挂载完成使用率高  可以操作dom结构
            mounted(){
                console.log("dom挂载完成");
            },
            
            beforeUpdate(){
                //视图的内容更新之前（数据已更新）
                console.log("数据更新之前");
            },
            updated(){
                 //视图的内容更新之后（数据已更新）
                console.log("数据更新完毕");
            },
            beforeDestroy(){
                console.log("销毁之前");
            },
            destroyed(){
                console.log("销毁完毕");
            },
            methods:{
                add(){
                    this.count+=1
                },
                isShow(){
                    this.flag=false
                }
            }
        })

        //相当于el:"#app"
        // vm.$mount("#app")





                // function Vue(obj) {
        //     const { beforeCreate } = obj
        //     beforeCreate()
        // }

        // vm.$mount("#app")

        // el   vm.$mount("#app")

    </script>
</body>

</html>